package com.tedu.API.threadAPI;

/**
 * 创建线程----第三种方案：匿名内部类【推荐：创建一次】
 * Lambda表达式---JDK1.8推出的新版本：简化匿名内部类的写法
 * Lambda表达式也叫函数表遍历！功能：简化匿名内部类
 *                               简化集合的遍历功能
 *                               简化功能方法
 *                               简化IO流的功能
 *Lambda表达式语法 ： () - > {} ,功能性接口!!
 * ()  代表
 * ->  代表
 * {}  代表
 * 需求 ： 创建接口 ，Insert 【插排 提供电】
 *           子实现类  Computer
 *           子类实现接口--完成对象创建【创建一次】
 *           匿名内部类完成创建
 *           Lambda表达式结构完成对象创建
 */
public class LambdaAPI {
    public static void main(String[] args) {
        //测试插排接口使用子实现类
//        Insert cp = new Computer(); //多态 父类引用指向子类对象
//        cp.Dian();
//        Insert cp=new Insert(){
//            public String Dian(long money,char ch) {
//                System.out.println("电脑开机~");
//                return "ff";
//            }
//        };
//        cp.Dian(100,'h');
        //使用Lambda表达式--简化方法
        Insert cp= (money,ch) -> "hahah";

        cp.Dian(1,'k');
        /**
         * Lambda表达式【简化方法】 ----匿名内部类【简化一个子类】【接口创建】
         * () 代表 方法中的参数，①无参数，不可以删除
         *                    ②有参数，一个参数,括号可以删掉
         *                    ③有参数，两个以上，不可以删除
         *-> 代表 new 对象的过程
         * {} 方法当中的内容，情况①：看方法的返回值 void 空 传入输出语句，删除{}
         *                     ②：看方法的返回值 java 数据类型 return java数据类型
         *                            【两种：八大基本数据类型|引用类型】
         *                                 返回值 存在return 不可以删除花括号【推荐】
         *                                 返回值 不存在return 可以删除花括号【不推荐】
         *                     ③：看方法的返回值  返回值集合  不可以删除花括号
         */
    }
}
interface Insert{
    public String Dian(long money,char ch);
}
//创建插排的实现类
//class Computer {
//    public void Dian(long money);
//}